Status display for parallel activities

ABSTRACT

When activities are operated in parallel, and there is only one status display, an ordered list is implemented with three methods of access: insertion at the top, removal from anywhere, and read of the top item. Items kept on this list are the status codes or words for the activities that are currently in progress. When a new activity begins, its status code or word is inserted at the top of the list. Whenever an activity completes, its code or word is removed from the list regardless of its location in the list, and in such a way as to preserve the order of the remaining entries in the list. Whenever the top entry in the list changes (whether through an insertion or removal), the single status display is updated to show the new top value.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] The present application is related to U.S. patent applicationSer. No. ______ [Attorney Docket No. AT9-99-356], entitled “System andMethod for Maintaining Device Name Consistency During Parallel DeviceDiscovery Processes,” which is hereby incorporated by reference herein.

TECHNICAL FIELD

[0002] The present invention relates in general to displaying the statusof an activity within a data processing system.

BACKGROUND INFORMATION

[0003] To enable problem determination and to provide indications ofprogress, many data processing systems display a status code or wordthat indicates what activity is currently taking place. As tasks arecompleted, the status code or word is changed to reflect the nextactivity that takes place. If a particular activity fails to complete,the user becomes aware because the status codes stop changing. Moreover,by observing the status code, the user can determine which activityfailed to complete, and thus can focus problem diagnosis activities onthe proper system component.

[0004] However, if there is only a single location for displaying asingle status code or word, then there is a problem in determining whatshould be displayed when these activities are occurring in parallel. Theprior method for changing the display each time a new activity isstarted does continue to provide information on the progress ofactivities. However, it is inadequate for problem determination, becauseif any activity fails to complete, the code or word displayed is for theactivity that was the last to be started, rather than for the activitythat has actually failed to complete. This leads to improper diagnosisof problems, laying blame on the wrong activity, and lengthening problemdetermination time.

[0005] More specifically, such a status code display is used on RS6000systems implementing the AIX operating system, available fromInternational Business Machines Corp. When the configuration manager isoperating, the device being configured is displayed in the statusdisplay. A problem occurs when the AIX operating system is configuringseveral attached devices in parallel, because it is often not possibleto determine which device is having problems being configured. Thisproblem is magnified when there are several hundred devices that need tobe configured, and are done so in parallel.

[0006] Therefore, there is a need in the art to provide a status displaythat provides information on the progress of parallel activities, butalso ensures that if any parallel activity fails to complete, its codeor word will eventually be displayed.

SUMMARY OF THE INVENTION

[0007] The present invention addresses the foregoing need by ensuringthat the code or word displayed still provides information on theprogress of parallel activities, but also ensures that if any parallelactivity fails to complete, its code or word will eventually bedisplayed, thus ensuring that problem determination activities beginwith the proper component.

[0008] The present invention implements the foregoing using an orderedlist with three methods of access: insertion at the top, removal fromanywhere, and read (not removal) of the top item. The items kept on thislist are the status codes or words for the activities that are currentlyin progress. When a new activity begins, its status code or word isinserted at the top of the list. Whenever an activity completes, itscode or word is removed from the list regardless of its location in thelist, and in such a way as to preserve the order of the remainingentries in the list. Whenever the top entry in the list changes (whetherthrough an insertion or removal), the single status display is updatedto show the new top value.

[0009] The effect of this is that every newly-started activity will haveits status code or word displayed for at least a short time, which givesthe observer a sense of the progress of the activities. The codedisplayed will always be for the latest-started activity that has notyet completed. If any activity is never going to complete, eventuallyall the other activities will complete, and their status codes or wordswill be removed from the list. This leaves only the “hung” activity'scode on the list, and since it is the only entry, it will be the onedisplayed. Thus, the observer will know which activity failed tocomplete.

[0010] The foregoing has outlined rather broadly the features andtechnical advantages of the present invention in order that the detaileddescription of the invention that follows may be better understood.Additional features and advantages of the invention will be describedhereinafter which form the subject of the claims of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] For a more complete understanding of the present invention, andthe advantages thereof, reference is now made to the followingdescriptions taken in conjunction with the accompanying drawings, inwhich:

[0012]FIG. 1 illustrates an exemplary diagram of devices connectedwithin a data processing system;

[0013]FIG. 2 illustrates a data processing system configurable inaccordance with the present invention;

[0014]FIG. 3 illustrates a method for implementing an embodiment of thepresent invention; and

[0015]FIG. 4 illustrates the status display of the present invention.

DETAILED DESCRIPTION

[0016] In the following description, numerous specific details are setforth such as specific word or byte lengths, etc. to provide a thoroughunderstanding of the present invention. However, it will be obvious tothose skilled in the art that the present invention may be practicedwithout such specific details. In other instances, well-known circuitshave been shown in block diagram form in order not to obscure thepresent invention in unnecessary detail. For the most part, detailsconcerning timing considerations and the like have been omitted inasmuchas such details are not necessary to obtain a complete understanding ofthe present invention and are within the skills of persons of ordinaryskill in the relevant art.

[0017] Refer now to the drawings wherein depicted elements are notnecessarily shown to scale and wherein like or similar elements aredesignated by the same reference numeral through the several views.

[0018] The following example is described with respect to the AIXoperating system version 4.3, which is published athttp:\\www.rs6000.ibm.com\doc_link\en_us\a_doc_lib\aixgen\topnav\topnav.htm,which is hereby incorporated by reference herein. However, the presentinvention is not limited in its applicability to the AIX operatingsystem.

[0019] The present invention will be described below with respect to theconfiguration manager component of an AIX operating system. However, theconcepts of the present invention may be expanded to other areas outsideof this particular embodiment. The configuration manager is arule-driven program that automatically configures devices in a dataprocessing system during system boot and run time. When theconfiguration manager is invoked, it reads rules from the configurationrules object class and performs the indicated actions.

[0020] Devices are organized into a set of hierarchical tree structures.Individual entries in a tree are known as nodes and each represents aphysical or logical device. Each tree represents a logical subsystem.For example, the tree containing the system node consists of all thephysical devices in the system. Thus, the top node in the tree is thesystem node, which represents the system device, and has nodes connectedbelow that represent individual pieces of the system. Below the systemnode is the system planar node, which represents the system planar inthe system. Below the system planar node is one or more bus nodes, whichrepresent the I/O buses in the system. Since adapter devices areconnected to bus devices, adapter nodes fall below the bus nodes in thetree. The bottom of the hierarchy contains devices to which no otherdevices are connected. FIG. 1 illustrates an example of a connectivityand dependence diagram providing an example of the connections anddependencies of devices in a system.

[0021] Each rule in the configuration rules object class specifies aprogram name that the configuration manager must execute. These programsare typically the configuration programs for the devices at the top ofthe nodes. When these programs are invoked, the names of the nextlower-level devices that need to be configured are returned. Theconfiguration manager configures the next lower-level devices byinvoking the configuration methods for those devices. In turn, thoseconfiguration methods return a list of to-be-configured device names.The process is repeated until no more device names are returned.

[0022] Referring next to FIG. 2, there is illustrated data processingsystem 213, which may be configured to operate in accordance with thepresent invention. System 213 shows only a few of the devices that maybe attached to the system, such as illustrated in FIG. 1. System 213 inaccordance with the subject invention includes one or more centralprocessing units (CPU) 210, such as a conventional microprocessor, and anumber of other units interconnected via a system bus 212. System 213includes a random access memory (RAM) 214, a read only memory (ROM) 216,and an input/output (I/O) adapter 218 for connecting peripheral devicessuch as disk units 220 and tape drives 240 to a bus 212, a userinterface adapter 222 for connecting a keyboard 224, a mouse 226, and/orother user interface devices such as a touch screen device (not shown)to the bus 212, a communication adapter 234 for connecting system 213 toa data processing network, and a display adapter 236 for connecting thebus 212 to a display device 238. CPU 210 may include other circuitry notshown herein, which will include circuitry commonly found within amicroprocessor, e.g., execution unit, bus interface unit, arithmeticlogic unit, etc. CPU 210 may also reside on a single integrated circuit.

[0023]FIG. 4 illustrates that on the chassis of system 213, a statusdisplay 401, which may be an LCD or LED display, is used to display thestatus of an activity operating within the system 213.

[0024] The status display is used to show the status of the AIX bootprocesses, including the configuration manager. As the configurationmanager discovers devices that are attached to the system, it invokesconfiguration methods (the “activities” described above) to configureeach device. Currently, AIX displays a unique three-digit code for eachmethod when it begins. When a method completes, AIX invokes the nextsuch method, displaying a new code.

[0025] As noted previously, when the configuration method is run, thedisplay identifies the type of device that is presently beingconfigured. If there is any faulty hardware, such faulty hardware couldcause the boot process to stop prematurely (i.e. “hang”). The displaygives a clue as to where the problem resides. Since the present versionof the AIX now runs the configuration methods in parallel, without thepresent invention, the display of the “hung” method might not occur.

[0026] Preferred implementations of the invention includeimplementations as a computer system programmed to execute the method ormethods described herein, and as a computer program product. Accordingto the computer system implementation, sets of instructions forexecuting the method or methods are resident in the random access memory214 or ROM 216 of one or more computer systems configured generally asdescribed above. Until required by the computer system 213, the set ofinstructions may be stored as a computer program product in anothercomputer memory, for example, in disk drive 220 (which may include aremovable memory such as an optical disk or floppy disk for eventual usein the disk drive 220). Further, the computer program product can alsobe stored at another computer and transmitted when desired to the user'swork station by a network or by an external network such as theInternet. One skilled in the art would appreciate that the physicalstorage of the sets of instructions physically changes the medium uponwhich it is stored so that the medium carries computer readableinformation. The change may be electrical, magnetic, chemical,biological, or some other physical change. While it is convenient todescribe the invention in terms of instructions, symbols, characters, orthe like, the reader should remember that all of these and similar termsshould be associated with the appropriate physical elements.

[0027] Note that the invention may describe terms such as comparing,validating, selecting, identifying, or other terms that could beassociated with a human operator. However, for at least a number of theoperations described herein which form part of at least one of theembodiments, no action by a human operator is desirable. The operationsdescribed are, in large part, machine operations processing electricalsignals to generate other electrical signals.

[0028] The software implementing the present invention is represented bythe flow diagram illustrated in FIG. 3. In step 301, the configurationmethod is begun. In step 302, a determination is made whether a newactivity has started, such as the configuration of a new device. If yes,the process proceeds to step 303 to display the identity of the newactivity, and the process loops back to step 302. The NO branch fromstep 302 proceeds to step 304 to determine if any activity hascompleted. If not, the process loops back to step 302. However, if instep 304, an activity has completed, then in step 305, that activity isremoved from the list of activities to be displayed on the statusdisplay 401. Therefore, in step 306, a determination is made whether theremoved activity is currently being displayed. If not, the process loopsback to step 302. However, if in step 306 the removed activity is beingdisplayed, the process proceeds to step 307 to display the activitypreviously displayed. The process then returns to step 304.

[0029] An example of the foregoing is illustrated in the followingtable: Display Contents with Display Contents Action List Contents thisinvention without this Invention Start Activity A aaa aaa aaa StartActivity B bbb, aaa bbb bbb Start Activity C ccc, bbb, aaa ccc cccActivity B completes ccc, aaa ccc ccc Activity C ccc, aaa ccc cccencounters an error and hangs Start Activity D ddd, ccc, aaa ddd dddStart Activity E eee, ddd, ccc, aaa eee eee Start Activity F fff, eee,ddd, ccc, aaa fff fff Activity F completes eee, ddd, ccc, aaa eee fffActivity E completes ddd, ccc, aaa ddd fff Activity A completes ddd, cccddd fff Activity D completes ccc ccc fff

[0030] There are six activities, A-F, with status codes aaa through fff,respectively. The table shows the contents of the list and the displayat each point in the evolution of a problem with Activity C that causesit to fail to complete. In the last column, the table shows what wouldbe displayed if the process simply wrote out a new status code or wordeach time a new activity began. Notice that without the presentinvention, the observer loses any sense of progress once the lastactivity has begun (the display shows only “fff”), and there is no wayfor the user to know that Activity C has not completed. With the presentinvention, however, the display is much more useful. Longer-runningactivities (such as Activity D) will have their status codes or wordseventually reappear on the display. Furthermore, it is seen thatActivity C, which has become “hung,” eventually has its status codereappear on the display 401, allowing the observer to determine whichactivity to investigate for problems after noting a lengthy period withno change in the contents of display 401.

[0031] Although the present invention and its advantages have beendescribed in detail, it should be understood that various changes,substitutions and alterations can be made herein without departing fromthe spirit and scope of the invention as defined by the appended claims.

What is claimed is:
 1. A method for tracking activities running inparallel in a data processing system, comprising the steps of:maintaining an ordered list of activities running in the system;whenever a new activity begins, inserting the new activity at a top ofthe list; whenever an activity in the ordered list completes, removingthe completed activity from the ordered list; and displaying theactivity that is at the top of the list.
 2. The method as recited inclaim 1, wherein the displaying step displays a code pertaining to thelatest-started activity that has not completed.
 3. The method as recitedin claim 1, wherein the activities are configurations of devicesattached to the data processing system.
 4. A method for configuringdevices attached to a data processing system, comprising the steps of:(a) determining if configuration of a device has begun; (b) ifconfiguration of a device has begun, inserting the configuration of thedevice in a list and displaying a code associated with the device; (c)determining if configuration of a device has completed; (d) ifconfiguration of a device has completed, removing the configuration ofthe device from the list; and (e) if the configuration of the deviceremoved in step (d) had had its associated code displayed, displayingcode associated with a configuration of a device immediately previous.5. The method as recited in claim 4, further comprising the step ofreturning to step (a) from step (b) if it is determined thatconfiguration of a device has begun.
 6. The method as recited in claim4, further comprising the step of returning to step (a) if in step (c)it is determined that configuration of a device has not completed. 7.The method as recited in claim 4, further comprising the step ofreturning to step (a) if in step (e) the configuration of the deviceremoved in step (d) had not had its associated code displayed.
 8. Themethod as recited in claim 4, further comprising the step of returningto step (c) from step (e).
 9. A data processing system comprising:circuitry for maintaining an ordered list of activities running in thesystem; whenever a new activity begins, circuitry for inserting the newactivity at a top of the list; whenever an activity in the ordered listcompletes, circuitry for removing the completed activity from theordered list; and circuitry for displaying the activity that is at thetop of the list.
 10. The system as recited in claim 9, wherein thedisplaying circuitry displays a code pertaining to the latest-startedactivity that has not completed.
 11. The system as recited in claim 9,wherein the activities are configurations of devices attached to thedata processing system.
 12. The system as recited in claim 9, whereinthe displaying circuitry further comprises: circuitry for determining ifan activity that has completed is currently being displayed; and if theactivity that has completed is currently being displayed, circuitry fordisplaying an activity that had previously been displayed.
 13. Acomputer program product adaptable for storage on a computer readablemedium, comprising a computer program operable for performing thefollowing steps: maintaining an ordered list of activities running in adata processing system; whenever a new activity begins, inserting thenew activity at a top of the list; whenever an activity in the orderedlist completes, removing the completed activity from the ordered list;and displaying the activity that is at the top of the list.
 14. Theprogram as recited in claim 13, wherein the displaying step displays acode pertaining to the latest-started activity that has not completed.15. The program as recited in claim 13, wherein the activities areconfigurations of devices attached to the data processing system. 16.The program as recited in claim 13, wherein the displaying step furthercomprises the steps of: determining if an activity that has completed iscurrently being displayed; and if the activity that has completed iscurrently being displayed, displaying an activity that had previouslybeen displayed.